ExtJS তে Responsive Layout তৈরি করা একটি গুরুত্বপূর্ণ প্রক্রিয়া, যেখানে অ্যাপ্লিকেশনের ইউজার ইন্টারফেস (UI) বিভিন্ন ডিভাইস এবং স্ক্রীন সাইজ অনুযায়ী অভিযোজিত (adjust) হয়। Responsive Layout এর মাধ্যমে একসাথে ডেস্কটপ এবং মোবাইল ডিভাইসে অ্যাপ্লিকেশন চালানো সহজ হয়।
ExtJS এ রেসপন্সিভ ডিজাইন তৈরি করার জন্য বিভিন্ন ধরনের লেআউট, responsiveConfig
, এবং media query
ব্যবহার করা হয়। এই ফিচারটি আপনার অ্যাপ্লিকেশনকে প্রয়োজনে স্বয়ংক্রিয়ভাবে স্কেল এবং অ্যাডাপ্ট করে।
responsiveConfig
responsiveConfig
হল ExtJS এর একটি বৈশিষ্ট্য যা বিভিন্ন ডিভাইসের জন্য ভিউ উপাদানগুলি (যেমন: প্যানেল, গ্রিড, বা ফর্ম) কনফিগার করার জন্য ব্যবহৃত হয়। এটি স্ক্রীন সাইজ এবং অন্যান্য মিডিয়া কন্ডিশন অনুযায়ী প্রপার্টি চেঞ্জ করতে সক্ষম।
media query
মিডিয়া কুয়েরি CSS এর মতো ব্যবহার করা হয়, যার মাধ্যমে স্ক্রীন সাইজ অনুযায়ী বিভিন্ন সিএসএস স্টাইল অ্যাপ্লাই করা হয়।
ধরা যাক, আপনি একটি প্যানেল তৈরি করতে চান যা ডেস্কটপে একরকম এবং মোবাইলে আরেকরকম দেখাবে। এখানে আমরা responsiveConfig
ব্যবহার করব।
Ext.define('MyApp.view.ResponsivePanel', {
extend: 'Ext.panel.Panel',
xtype: 'responsivepanel',
title: 'Responsive Panel',
width: 400,
height: 300,
html: '<p>Welcome to the responsive layout!</p>',
responsiveConfig: {
'width < 500': { // যদি স্ক্রীনের প্রস্থ 500px এর কম হয়
width: '100%',
height: 'auto',
html: '<p>Mobile Layout - Adjusted Width and Height</p>'
},
'width >= 500': { // যদি স্ক্রীনের প্রস্থ 500px এর সমান বা বেশি হয়
width: 400,
height: 300,
html: '<p>Desktop Layout - Fixed Width and Height</p>'
}
},
initComponent: function() {
this.callParent();
}
});
এখানে:
responsiveConfig
ব্যবহার করা হয়েছে। যখন স্ক্রীনের প্রস্থ 500px এর নিচে যাবে, তখন প্যানেলটি 100% প্রস্থ নিয়ে মোবাইল ফর্ম্যাটে কনভার্ট হবে।এছাড়াও Flex Layout
এবং Column Layout
ব্যবহার করে আপনি বিভিন্ন কলাম এবং রেসপন্সিভ ডিজাইন তৈরি করতে পারেন।
Ext.define('MyApp.view.FlexLayoutPanel', {
extend: 'Ext.panel.Panel',
xtype: 'flexlayoutpanel',
title: 'Flex Layout Panel',
layout: 'hbox', // flexbox layout
items: [
{
xtype: 'panel',
flex: 1, // Flexibly adjusts the width
html: '<p>Left Panel</p>',
style: { border: '1px solid black' }
},
{
xtype: 'panel',
width: 200, // Fixed width for right panel
html: '<p>Right Panel</p>',
style: { border: '1px solid black' }
}
]
});
layout: 'hbox'
: এটি ফ্লেক্সবক্স লেআউট ব্যবহার করছে, যা উপাদানগুলোকে এক সারিতে রাখে এবং সেগুলোর আকার স্ক্রীনের প্রস্থ অনুসারে কাস্টমাইজ করে।flex
: ফ্লেক্সবক্সের মাধ্যমে উপাদানগুলি স্বয়ংক্রিয়ভাবে তাদের প্রস্থ বৃদ্ধি বা সংকুচিত করতে পারে।ExtJS তে CSS স্টাইলিংয়ের মাধ্যমে মিডিয়া কুয়েরি ব্যবহার করতে পারেন। এর মাধ্যমে বিভিন্ন স্ক্রীন সাইজ অনুযায়ী কাস্টম স্টাইল অ্যাপ্লাই করা হয়।
@media (max-width: 768px) {
.x-panel {
background-color: #f0f0f0; /* Mobile-specific background color */
}
}
@media (min-width: 769px) {
.x-panel {
background-color: #ffffff; /* Desktop-specific background color */
}
}
এখানে, মিডিয়া কুয়েরি ব্যবহার করে আমরা মোবাইল এবং ডেস্কটপের জন্য আলাদা ব্যাকগ্রাউন্ড রঙ নির্ধারণ করেছি।
Ext.container.Viewport
এবং layout: 'fit'
ডেস্কটপ এবং মোবাইল অ্যাপ্লিকেশন ডিজাইন করতে Ext.container.Viewport
এবং layout: 'fit'
ব্যবহার করা হয়। এই লেআউটটি স্বয়ংক্রিয়ভাবে কনটেন্টকে স্ক্রীনের পুরো প্রস্থ এবং উচ্চতায় ফিট করে।
Ext.define('MyApp.view.ViewportPanel', {
extend: 'Ext.container.Viewport',
layout: 'fit',
items: [
{
xtype: 'panel',
title: 'Responsive Viewport Panel',
html: '<p>This panel fits the entire screen!</p>'
}
]
});
layout: 'fit'
: এটি কনটেন্টকে পুরো স্ক্রীনে ফিট করে এবং খুবই কার্যকর মোবাইল ও ডেস্কটপের জন্য।ExtJS তে রেসপন্সিভ টুলবার এবং মেনু তৈরি করা সম্ভব, যা স্ক্রীন সাইজ অনুযায়ী টুলবারের আইটেমগুলি সঠিকভাবে ডিসপ্লে করবে। ছোট স্ক্রীনে মেনু বা টুলবার এলিমেন্টগুলোটি সঙ্কুচিত হতে পারে।
Ext.create('Ext.toolbar.Toolbar', {
renderTo: Ext.getBody(),
items: [
{ text: 'Home' },
{ text: 'About' },
{ text: 'Contact' },
{
xtype: 'tbfill'
},
{
xtype: 'button',
text: 'Settings',
menu: {
items: [
{ text: 'Profile' },
{ text: 'Logout' }
]
}
}
]
});
এখানে tbfill
ব্যবহার করে টুলবার আইটেমগুলোর মধ্যে ফাঁকা স্থান সৃষ্টি করা হয়েছে।
responsiveConfig
এবং media query
ব্যবহার করা হয়। এর মাধ্যমে অ্যাপ্লিকেশন UI বিভিন্ন ডিভাইসের স্ক্রীন সাইজ অনুযায়ী স্বয়ংক্রিয়ভাবে অভিযোজিত হয়।layout: 'fit'
, hbox
বা vbox
লেআউট ব্যবহার করে রেসপন্সিভ প্যানেল এবং উপাদান তৈরি করা যায়।Ext.container.Viewport
লেআউট ব্যবহার করে স্ক্রীনের পুরো প্রস্থে কনটেন্ট ফিট করানো সম্ভব।এভাবে, ExtJS তে রেসপন্সিভ ডিজাইন তৈরি করলে আপনার অ্যাপ্লিকেশন বিভিন্ন স্ক্রীন সাইজের ডিভাইসে কার্যকরীভাবে চলবে।
Read more